const a = {
    "comm": {
        "cv": 4747474,
        "ct": 24,
        "format": "json",
        "inCharset": "utf-8",
        "outCharset": "utf-8",
        "notice": 0,
        "platform": "yqq.json",
        "needNewCode": 1,
        "uin": 3236034970,
        "g_tk_new_20200303": 587132584,
        "g_tk": 587132584
    },
    "req_1": {
        "method": "DoSearchForQQMusicDesktop",
        "module": "music.search.SearchCgiService",
        "param": {
            "remoteplace": "txt.yqq.song",
            "searchid": "68324301142562532",
            "search_type": 0,
            "query": "我的梦",
            "page_num": 1,
            "num_per_page": 10
        }
    }
}
const __str1 = JSON.stringify(a);
var c = __str1.charCodeAt(380), d = __str1.charCodeAt(381), e = __str1.charCodeAt(382);
c <<= 24;
d <<= 16;
e <<= 8;
console.log(c, d, e);
const count = parseInt(__str1.length / 64)
/*
55296

25105
关于上述字符串中出现汉字的处理方法

pos119 v = 汉字编码的值 v1 >> 12
pos21 v = pos119 v | 224

继续对对应位置执行上述操作 pos21 v

pos54 v = 汉字编码的值 v1 >> 6
pos239 v = pos54 v & 63 ?
pos54 v = pos239 v | 128

pos 21 v = pos54 v << pos119 v
pos122 v =  pos21 v | pos122 v pos122 为对应数组元素中的值，并重新赋值数组元素

关于Arr80 下标为16处的元素的值
pos21 v = 汉字编码的值 v1 & 63 ?
pos119 v = pos21 v | 128
pos54 v = pos119 v << 24
pos227 v = Arr80[16] | pos54 v
更新数组中对应元素的值 即16
*/
function fun1(v,v1){
    if(v > 128){
        let v2 = (v >> 12);
        v2 |= 224;
        v2 <<= v1;
        let v3 = ((((v >> 6) & 63) | 128) << v2) | v2;


    }else
        return v;
}

for (let k = 0; k < count; k++) {
    let __newArr80 = [];
    for (let i = k * 16; i < k * 16 + 16; i++) {
        let v = __str1.charCodeAt(4 * i), v2 = __str1.charCodeAt(4 * i + 1),
            v3 = __str1.charCodeAt(4 * i + 2), v4 = __str1.charCodeAt(4 * i + 3);
        // 如果中间出现汉字 ，那么执行的是 >> 12 并且 | 224，之后在执行下述对应操作
        v <<= 24, v2 <<= 16, v3 <<= 8, v4 <<= 0;
        __newArr80.push(v | v2 | v3 | v4);
    }

    for (let i = 16; i < 80; i++) {
        let v = __newArr80[i - 3] ^ __newArr80[i - 8] ^ __newArr80[i - 14] ^ __newArr80[i - 16];
        v = (v << 1) | (v >>> 31);
        __newArr80.push(v);
    }
    console.log(k)
    console.log(__newArr80)
}


/*
关于上述字符串中出现汉字的处理方法
pos122 v = 38 固定值
pos119 v = 汉字编码的值 v1 >> 12
pos21 v = pos119 v | 224
继续对对应位置执行上述操作 pos21 v
pos54 v = 汉字编码的值 v1 >> 6
pos239 v = pos54 v & 63 ?
pos54 v = pos239 v | 128
pos 21 v = pos54 v << pos119 v
pos122 v =  pos21 v | pos122 v pos122 为对应数组元素中的值，并重新赋值数组元素

关于Arr80 下标为16处的元素的值
pos21 v = 汉字编码的值 v1 & 63 ?
pos119 v = pos21 v | 128
pos54 v = pos119 v << 24
pos227 v = Arr80[16] | pos54 v
更新数组中对应元素的值 即16



*/